<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Make Controller Kit - Firmware API: System - OSC</title>
<link href="mt_doxygen.css" rel="stylesheet" type="text/css" />
<link href="../resources/mt_doxytabs.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.header {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 12pt;
	color: #222222;
}
-->
</style>
</head>

<body>
<table width="800" border="0">
    <tr>
      <td colspan="3">
        <form method="get" action="http://www.google.com/search">
          <div align="right">
            <input type="text"   name="q" size="25"
              maxlength="255" value="" />
            <input type="submit" value="Search" />
            <input type="hidden" name="sitesearch" value="makingthings.com/ref/firmware/html" />
          </div>
        </form>
       </td>
    </tr>
    <tr>
      <td><div align="center"><a href="http://www.makingthings.com">
				<img src="../resources/logo_brown_medium.png" alt="MakingThings"
									width="200" height="78" border="0" align="middle" longdesc="http://www.makingthings.com" /></a></div></td>
				<td><div align="center" class="header">
      		Make Controller Kit <br />
          Firmware API
      </div></td>
      <td><div align="center"><a href="http://www.makezine.com">
					<img src="../resources/make_logo.png" alt="MAKE Zine" 
										width="164" height="73" border="0" align="middle" longdesc="http://www.makezine.com" /></a></div></td>
    </tr>
</table>
</body>
</html>
<!-- Generated by Doxygen 1.5.4 -->
<script type="text/javascript">
<!--
function changeDisplayState (e){
  var num=this.id.replace(/[^[0-9]/g,'');
  var button=this.firstChild;
  var sectionDiv=document.getElementById('dynsection'+num);
  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
    sectionDiv.style.display='block';
    button.src='open.gif';
  }else{
    sectionDiv.style.display='none';
    button.src='closed.gif';
  }
}
function initDynSections(){
  var divs=document.getElementsByTagName('div');
  var sectionCounter=1;
  for(var i=0;i<divs.length-1;i++){
    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
      var header=divs[i];
      var section=divs[i+1];
      var button=header.firstChild;
      if (button!='IMG'){
        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
        button=document.createElement('img');
        divs[i].insertBefore(button,divs[i].firstChild);
      }
      header.style.cursor='pointer';
      header.onclick=changeDisplayState;
      header.id='dynheader'+sectionCounter;
      button.src='closed.gif';
      section.id='dynsection'+sectionCounter;
      section.style.display='none';
      section.style.marginLeft='14px';
      sectionCounter++;
    }
  }
}
window.onload = initDynSections;
-->
</script>
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>System - OSC<br>
<small>
[<a class="el" href="group___o_s_c.html">OSC</a>]</small>
</h1>System controls many of the logistics of the Controller Board via OSC.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
<h2><a class="anchor" name="devices">
Devices</a></h2>
There's only one System, so a device index is not used in OSC messages to it.<h2><a class="anchor" name="properties">
Properties</a></h2>
System has eight properties:<ul>
<li>name</li><li>freememory</li><li>samba</li><li>reset</li><li>serialnumber</li><li>version</li><li>stack-audit</li><li>task-report</li><li>active</li></ul>
<p>
<dl class="user" compact><dt><b>Name</b></dt><dd>The <b>name</b> property allows you to give a board its own name. The name can only contain alphabetic characters and numbers. To set your board's name, send the message <div class="fragment"><pre class="fragment">/system/name "My Board"</pre></div> To read the board's name, send the message <div class="fragment"><pre class="fragment">/system/name </pre></div> The board will respond by sending back an OSC message with the board's name.</dd></dl>
<dl class="user" compact><dt><b>Free Memory</b></dt><dd>The <b>freememory</b> property corresponds to the amount of free memory on the Controller Board. This value is read-only. To get the amount of free memory, send the message <div class="fragment"><pre class="fragment">/system/freememory </pre></div> The board will respond by sending back an OSC message with the amount of free memory.</dd></dl>
<dl class="user" compact><dt><b>Samba</b></dt><dd>The <b>samba</b> property is a write-only value that returns the board to a state in which it's ready to receive new firmware via SAM-BA or mchelper. Once you've set the board to SAM-BA state, unplug and replug the power on the board before uploading new firmware. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To set the board in SAM-BA state, send the message <div class="fragment"><pre class="fragment">/system/samba 1 </pre></div> and don't forget to power cycle the board. Remember the board won't be able to send/receive OSC messages until a new program is uploaded to it.</dd></dl>
<dl class="user" compact><dt><b>Reset</b></dt><dd>The <b>reset</b> property is a write-only value that reboots the board. To reset the board, send the message <div class="fragment"><pre class="fragment">/system/reset 1 </pre></div></dd></dl>
<dl class="user" compact><dt><b>Serial Number</b></dt><dd>The <b>serialnumber</b> property corresponds to the unique serial number on each Controller Board. This value can be used in situations where a unique value needs to be used to identify a board. The serial number can be both read and written. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To read the board's serial number, send the message <div class="fragment"><pre class="fragment">/system/serialnumber </pre></div></dd></dl>
<dl class="user" compact><dt><b>Version</b></dt><dd>The <b>version</b> property corresponds to the of the firmware currently running on the board. This is read-only. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To read the board's version, send the message <div class="fragment"><pre class="fragment">/system/version </pre></div></dd></dl>
<dl class="user" compact><dt><b>Stack Audit</b></dt><dd>The <b>stack-audit</b> property can fire up a task that will monitor the stack usage of all tasks running on the board. If the remaining stack of any of the tasks drops below 50 bytes, the board will attempt to send an OSC message back via the <a class="el" href="group___debug.html">Debug</a> system to let you know. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>This uses up quite a lot of processor time, so it's really only designed to be used in a debug context. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To start up the stack audit, send the message <div class="fragment"><pre class="fragment">/system/stack-audit 1 </pre></div> </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>and turn it off by sending <div class="fragment"><pre class="fragment">/system/stack-audit 0 </pre></div></dd></dl>
<dl class="user" compact><dt><b>Task Report</b></dt><dd>The <b>task-report</b> property is a read-only property that will generate a list of all the tasks running on your Make Controller, first giving the name of the task followed by the task's remaining stack. </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>To see the tasks running on your board, send the message <div class="fragment"><pre class="fragment">/system/task-report </pre></div></dd></dl>
<dl class="user" compact><dt><b>Active</b></dt><dd>The <b>active</b> property corresponds to the active state of System. If System is set to be inactive, it will not respond to any other OSC messages. If you're not seeing appropriate responses to your messages to System, check the whether it's active by sending a message like <div class="fragment"><pre class="fragment">/system/active </pre></div> </dd></dl>
<dl class="user" compact><dt><b></b></dt><dd>You can set the active flag by sending <div class="fragment"><pre class="fragment">/system/active 1 </pre></div> </dd></dl>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Make Controller Kit</title>
<style type="text/css">
<!--
.footer {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9pt;
	color: #999999;
}
-->
</style>
</head>

<body>
<hr size="1">
<div>
  <p class="footer">The Make Controller Kit is an open source project maintained by <a href="http://www.makingthings.com">MakingThings</a>.<br />
    MakingThings code is released under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache 2.0 license</a>.<br />
    Bug tracker, development wiki and status can be found at <a href="http://dev.makingthings.com">http://dev.makingthings.com</a>.<br />
		This document was last updated on 5 Dec 2007.
</p>
</div>
<!-- Google Analytics Code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-769030-1";
urchinTracker();
</script>
</body>
</html>
